package com.huike.review.mapper;

import com.huike.review.pojo.Review;
import com.huike.review.vo.MybatisReviewVO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Mybatis复习的Mapper层
 */

@Mapper
public interface MybatisReviewMapper {


    /**======================================================新增======================================================**/
    //sql 在 xml 写了
    //@Insert("insert into mybatis_review values(#{id},#{name},#{age},#{sex})")

    // 1.方法有多个参数，需要 @Param 注解
    // 2.当需要给参数取一个别名的时候，需要 @Param 注解
    // 3.XML 中的 SQL 使用了 $ ，那么参数中也需要 @Param 注解，$ 会有注入漏洞的问题，但是有的时候你必须要 $ 符号，
    //  例如要传入列名或者表名的时候，这个时候必须要
    // 4.动态 SQL ，如果在动态 SQL 中使用了参数作为变量，那么也需要 @Param 注解，即使你只有一个参数。

    int saveData(@Param("name") String name,@Param("age") Integer age ,@Param("sex") String sex);
    int saveData1( Review review);
    /**======================================================删除======================================================**/
    int remove (Long id);
    /**======================================================修改======================================================**/
    int update(Review review);
    /**======================================================简单查询===================================================**/
    Review getById(Long id);
    List<Review> page();
}
